Pair Selection

To look for candidate metabolite-methylation pairs, I ran three linear models and selected based on the p value cutoffs below (e.g. metabolite and methylation associated at p < 0.05, and both associated with IA status at p < 0.05).

Using this mediation structure, there were 516 pairs selected. The only metabolite selected was lipid_582:

identifier row.m.z row.retention.time Metabolite.name InChi.Key mode bc.lambda feature_name
582 1.39_301.22 301.2157 1.39 FA (20:5) [M-H]- (eicosapentaenoic acid)_JAZBEHYOTPTENJ-JLNKQSITSA-N JAZBEHYOTPTENJ-JLNKQSITSA-N negative -0.6 lipid_582

No pairs were selected using this mediation structure.

Mediation Analysis

Models

Terms:

\[ Y = \text{IA Status}\\ M = \text{Metabolite at SV}\\ T = \text{Methylation at PSV}\\ X_2 = \text{Age at PSV}\\ X_3 = \text{Sex}\\ X_4 = \text{DR3/4 Status}\\ \text{i indexes subject}\\ \]

Mediator Model

\[ M_i = \beta_0 + \beta_1 T_i+\beta_2 X_{i2}+\beta_3 X_{i3}+\beta_4 X_{i4}+\epsilon_i\\ \text{With } \epsilon_i\text{ i.i.d. } N(0,\sigma^2) \]

Outcome Model

\[ \text{Let }p=\text{the probability a given subject is an IA case}=P(Y = 1)\\ ln(\frac{p}{1-p}) = \theta_0 +\theta_1 T_i+\theta_2 M_i+\theta_3 X_{i2}+\theta_4 X_{i3}+\theta_5 X_{i4} \]

Mediation

Given, the observed outcome \(Y_i(T_i, M_i(T_i))\), where \(M_i(T_i)\) represents the observed value of the mediator:

\[ \text{CME: }\delta_i(t)\equiv Y_i(t, M_i(1)) − Y_i(t, M_i(0))\\ \text{DE: } \gamma_i(t)\equiv Y_i(1, M_i(t)) − Y_i(0, M_i(t))\\ \text{TE: } \tau_i\equiv \delta_i(t)+\gamma_i(1−t) \]

Comparison to Manual Code

mediation package

Proportion Mediated

Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.0452892 0.0229637 -1.972212 0.054615
manual 0.5341016 0.0659520 8.098341 0.000000

The slope of this linear model is significantly different from 1 (p < 0.001). However, a t test of the difference is not statistically significant (p = 0.711). All of the signs are the same at least.

Lower CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.4680276 0.1106164 -4.231085 0.0001097
manual 0.4271809 0.0562433 7.595230 0.0000000

The slope of this linear model is significantly different from 1 (p < 0.001). However, a t test of the difference is not statistically significant (p = 0.12). The signs are not all the same, but the one that is different is very close (-0.00323 vs. 0.00209).

Upper CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0036778 0.0222009 0.1656617 0.8691491
manual 0.9369964 0.0454057 20.6361161 0.0000000

The slope of this linear model is significantly different from 1 (p < 0.001). However, a t test of the difference is not statistically significant (p = 0.233). All signs are the same.

Indirect Effect

Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.0010031 0.0162974 -0.0615482 0.9511893
manual -0.0419505 0.0488918 -0.8580268 0.3953264

The slope of this linear model is significantly different from 1 (p < 0.001). However, a t test of the difference is not statistically significant (p = 0.919). The signs are pretty different.

Lower CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.1072940 0.0175911 -6.099337 0.0000002
manual -0.0762647 0.0264451 -2.883889 0.0059567

The slope of this linear model is significantly different from 1 (p < 0.001). Also, a t test of the difference was statistically significant (p = <0.001). The signs are not all the same.

Upper CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.1104663 0.0276074 4.001322 0.0002269
manual -0.0846191 0.0490265 -1.725987 0.0910619

The slope of this linear model is significantly different from 1 (p < 0.001). A t test of the difference was also statistically significant (p = <0.001).

Direct Effect

Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0018581 0.0027858 0.6670026 0.5081026
manual -0.0016904 0.0014292 -1.1827167 0.2429986

The slope of this linear model is significantly different from 1 (p < 0.001). However, a t test of the difference is not statistically significant (p = 0.871). The signs are pretty different.

YIKES

Lower CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.0598664 0.0087648 -6.830361 0.000000
manual -0.0139536 0.0034697 -4.021530 0.000213

The slope of this linear model is significantly different from 1 (p < 0.001). Also, a t test of the difference was statistically significant (p = <0.001). The signs are not all the same.

What is happening here?

Upper CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0602508 0.0075195 8.01258 0.0000000
manual -0.0096862 0.0026415 -3.66687 0.0006349

The slope of this linear model is significantly different from 1 (p < 0.001). A t test of the difference was also statistically significant (p = <0.001).

regmedint package

Proportion Mediated

## Warning in summary.lm(lm(package ~ manual)): essentially perfect fit: summary
## may be unreliable
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0 0 -3.047864e+00 0.0038121
manual 1 0 3.311232e+16 0.0000000

The package and my code match perfectly.

Lower CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0435322 0.0317348 1.37175 0.1767951
manual 0.4472601 0.0161357 27.71875 0.0000000

Upper CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.1947107 0.0378399 5.145644 0.0000054
manual 0.2061689 0.0773908 2.663997 0.0106103

Indirect Effect

## Warning in summary.lm(lm(package ~ manual)): essentially perfect fit: summary
## may be unreliable
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0 0 0.000000e+00 1
manual 1 0 1.294429e+17 0

They match perfectly again!

Lower CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.0472334 0.0053649 -8.804103 0
manual 0.8154650 0.0080652 101.108850 0

Upper CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0759720 0.0087218 8.710571 0
manual 0.7234295 0.0154886 46.707291 0

The slope of this linear model is significantly different from 1 (p < 0.001). A t test of the difference was also statistically significant (p = 0.0417).

Direct Effect

## Warning in summary.lm(lm(package ~ manual)): essentially perfect fit: summary
## may be unreliable
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0 0 -2.602018e-01 0.7958693
manual 1 0 1.582513e+16 0.0000000

Lower CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0010130 0.0154580 0.0655309 0.9480353
manual 0.9113554 0.0061194 148.9280735 0.0000000

Upper CI Bound

Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0004431 0.0186194 0.0237978 0.9811168
manual 0.9192607 0.0065408 140.5416437 0.0000000